package com.lzc.service;

import com.lzc.domain.MigrationProgress;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 迁移进度服务接口
 */
public interface MigrationProgressService extends IService<MigrationProgress> {
    
    /**
     * 获取或创建迁移进度记录
     * @param taskName 任务名称
     * @param sourceTable 源表名
     * @param targetTable 目标表名
     * @param totalCount 总记录数
     * @param batchSize 批处理大小
     * @return 迁移进度记录
     */
    MigrationProgress getOrCreateProgress(String taskName, String sourceTable, String targetTable, 
                                        Long totalCount, Integer batchSize);
    
    /**
     * 更新迁移进度
     * @param taskName 任务名称
     * @param maxProcessedId 已处理的最大ID
     * @param processedCount 已处理记录数
     */
    void updateProgress(String taskName, Long maxProcessedId, Long processedCount);
    
    /**
     * 完成迁移任务
     * @param taskName 任务名称
     */
    void completeTask(String taskName);
    
    /**
     * 标记任务失败
     * @param taskName 任务名称
     * @param errorMessage 错误信息
     */
    void failTask(String taskName, String errorMessage);
    
    /**
     * 重置任务进度
     * @param taskName 任务名称
     */
    void resetTask(String taskName);
}
